#nullable enable

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;

namespace PHMEE.EnergyEfficiency;

public interface IShaftPowerMeterAppService
{
    // /// <summary>
    // /// 获取实时轴功率计采集数据
    // /// </summary>
    // /// <param name="vesselId"></param>
    // /// <returns></returns>
    // Task<List<ShaftPowerMeterDto>> GetRealtimeShaftPowerMeterDataAsync(Guid vesselId);

    /// <summary>
    /// 获取轴功率计各参数的 Description 选项列表
    /// </summary>
    /// <param name="vesselId"></param>
    /// <returns></returns>
    public List<string> GetDescriptions(Guid vesselId);

    /// <summary>
    /// 查询轴功率计数据
    /// </summary>
    /// <param name="vesselId"></param>
    /// <param name="description"></param>
    /// <param name="startDateTime"></param>
    /// <param name="endDateTime"></param>
    /// <param name="skipCount"></param>
    /// <param name="maxResultCount"></param>
    /// <returns></returns>
    Task<PagedResultDto<ShaftPowerMeterDto>> GetShaftPowerMeterDataAsync(Guid vesselId,
        string? description, DateTime startDateTime, DateTime endDateTime, int skipCount, int maxResultCount);

    /// <summary>
    /// 获取最新轴功率计采集数据
    /// </summary>
    /// <param name="vesselId"></param>
    /// <returns></returns>
    Task<List<ShaftPowerMeterDto>> GetLatestShaftPowerMeterDataAsync(Guid vesselId);
}